Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра КСА
Лабораторна робота №3
З курсу «Програмування комп’ютерної графіки»
На тему: “ УПРАВЛІННЯ КОЛЬОРАМИ ТА СТИЛЯМИ ГРАФІЧНИХ ЗОБРАЖЕНЬ В СЕРЕДОВИЩІ MICROSOFT VISUAL STUDIO C++ 2008”
Варіант № 24
Прийняв:
Старший викладач:
Іванюк О.О.
Львів - 2014
Завдання:
Написати програму на алгоритмічній мові C++, яка виводить на екран розмальоване графічне зображення. Варіанти завдань брати за вказівкою викладача з таблиці 1.
N% п/п
Варіанти завдань
24
/
Блок-схема алгоритму програми:
Список ідентифікаторів констант, змінних, процедур і функцій, використаних в програмі, та їх пояснення.
MoveTo( ) – переносить курсор у задану точку;
LineTo( ) – будує лінію до заданої точки;
CBrush - користувацькй пензель;
СPen –користувацьке перо;
dc.SelectObject(& ___ ); - використання користувацького пера;
CreatePen() - ініціалізує перо заданими атрибутами;
CreateBrush ( ) - ініціалізує пензель заданими атрибутами;
Rectangle( ) – малює прямокутник.
Остаточно відлагоджений текст програми згідно з отриманим завданням.
#include "stdafx.h"
#include "mfc 3 laba.h"
#include "mfc 3 labaDoc.h"
#include "mfc 3 labaView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
void Cmfc3labaView::OnDraw(CDC* dc)
{
Cmfc3labaDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
RECT rect;
GetClientRect(&rect);
RECT rctA;
rctA.left = 20;
rctA.top = 30;
rctA.right = 180;
rctA.bottom = 230;
RECT rctB = {20,30,180,230};
CBrush red_brush, black_brush,green_brush, yelow_brush, blue_brush, pink_brush, bluew_brush,gray_brush;
CPen blue_pen, gray_pen, pink_pen, green_pen, black_pen,yelow_pen,red_pen;
// CPaintDC dc(this);
black_brush.CreateSolidBrush(RGB(0, 0, 0));
blue_brush.CreateSolidBrush(RGB(61, 12, 255));
pink_brush.CreateSolidBrush(RGB(255, 0, 255));
red_brush.CreateSolidBrush(RGB(255, 0, 0));
green_brush.CreateSolidBrush(RGB(0, 255, 0));
yelow_brush.CreateSolidBrush(RGB(255, 255, 0));
gray_brush.CreateSolidBrush(RGB(139, 128, 126));
//
black_pen.CreatePen(0,1,RGB(0, 0, 0));
blue_pen.CreatePen(0, 1, RGB(61, 12, 255));
gray_pen.CreatePen(0, 1, RGB(139, 128, 126));
red_pen.CreatePen(0,1, RGB(255, 0, 0));
pink_pen.CreatePen(0, 1, RGB(255, 0, 255));
yelow_pen.CreatePen(0,1, RGB(255, 255, 0));
green_pen.CreatePen(0, 1, RGB(0, 255, 0));
//червоний колір
red_pen.CreatePen(0,1,RGB(255, 0, 0));
dc->SelectObject(&red_pen);
red_brush.CreateSolidBrush(RGB(255, 0, 0));
dc->SelectObject(&red_brush);
dc->Rectangle(430,580,525,505);//лівий нижній квадрат(червоний)
dc->Rectangle(563,417,650,497);//квадрат червоний посередині
dc->Rectangle(470,232,558,345);//квадрат червоний вгорі справа
dc->Rectangle(583,355,607,413);
//синій колір
blue_pen.CreatePen(0, 1, RGB(61, 12, 255));
dc->SelectObject(&blue_pen);
blue_brush.CreateSolidBrush(RGB(61, 12, 255));
dc->SelectObject(&blue_brush);
dc->Rectangle(430,500,465,417);//вище червоного(синій)
dc->Rectangle(831,580,757,468);//правий нижній (синій)
dc->Rectangle(695,545,831,580);//правий нижній повністю синій лівіше
dc->SelectObject(&blue_brush);
dc->Rectangle(831,232,757,345);//синій над жовтим справа вверху
dc->Rectangle(655,315,757,345);//синій повністю
//сірий колір
gray_pen.CreatePen(0, 1, RGB(139, 128, 126));
dc->SelectObject(&gray_pen);
gray_brush.CreateSolidBrush(RGB(139, 128, 126));
dc->SelectObject(&gray_brush);
dc->Rectangle(530,448,558,580);//сірий нижній прямокутник біля жовтого червоного
dc->Rectangle(558,502,620,540);//сірий вправо
dc->Rectangle(700,232,752,310);//сірий справа вгорі блія синього
dc->Rectangle(563,312,618,331);//над буквою т
//жовтий колір
yelow_pen.CreatePen(0,1,RGB(255, 255, 0));
dc->SelectObject(&yelow_pen);
yelow_brush.CreateSolidBrush(RGB(255, 255, 0));
dc->SelectObject(&yelow_brush);
dc->Rectangle(831,350,757,462);//жовтий над синім справа
dc->Rectangle(655,232,695,310);//жовтий вгорі справа біля сірого
dc->SelectObject(&yelow_brush);
...